hhkb
모의해킹

호스트기반모의해킹_34_리눅스 소프트웨어 취약점

작성자 : Heehyeon Yoo|2025-12-12
# 모의해킹# Post-Exploitation# Linux# Privilege Escalation# Exploit-DB

1. 개요

리눅스 시스템은 수많은 패키지와 서드파티 소프트웨어로 구성된다. 커널(Kernel) 자체의 취약점뿐만 아니라, 설치된 응용 프로그램(Application)의 구버전 취약점을 악용하여 권한 상승을 시도할 수 있다.

2. 취약한 소프트웨어 식별

2.1 패키지 매니저 확인

  • dpkg -l: Debian/Ubuntu 계열 설치 패키지 목록.
  • rpm -qa: RedHat/CentOS 계열.
  • 설치된 패키지 중 버전이 현저히 낮은 라이브러리나 데몬을 눈여겨본다. 하지만 목록이 너무 방대하여 육안 식별은 어렵다.

2.2 수동 설치 디렉토리(/opt)(★중요)

  • ls -al /opt/: 관리자가 패키지 매니저를 통하지 않고 수동으로 설치(Compile/Manual Install)한 소프트웨어가 주로 위치한다.
  • 핵심: 수동 설치된 SW는 apt upgrade 등으로 자동 업데이트가 되지 않아, 심각한 구버전 취약점(Legacy Vulnerability)이 방치될 확률이 매우 높다.
  • 예시: /opt/screen-4.5.0/ 발견 -> GNU Screen 4.5.0 버전임을 확인.

3. 익스플로잇 검색(Search & Exploit)

3.1 취약점 DB 검색(Searchsploit)

Kali Linux에는 Exploit-DB의 오프라인 사본(searchsploit)이 내장되어 있다.

# 특정 소프트웨어 버전으로 검색
searchsploit screen 4.5.0

# 결과 예시:
# GNU Screen 4.5.0 - Local Privilege Escalation | linux/local/41154.sh
  • Local Privilege Escalation: 로컬 권한 상승 가능 취약점임을 확인.

3.2 익스플로잇 코드 확보

searchsploit에서 찾은 코드를 현재 디렉토리로 복사한다.

searchsploit -m 41154.sh
  • -m: Mirror(복사).
  • 가져온 스크립트(41154.sh) 내용을 반드시 cat이나 vi로 확인하여 악성 코드 유무컴파일 방법을 파악해야 한다.

4. 공격 실행(Execution)

  1. 파일 전송: 확보한 익스플로잇 코드를 타겟 호스트로 전송한다.(SCP, Python HTTP 등 활용).
  2. 컴파일(Compilation):
    • 대부분의 로컬 익스플로잇은 C언어로 작성되어 있어 컴파일이 필요하다.
    • 스크립트 내부에 컴파일 명령어가 포함된 경우도 있다.
    • gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c(예시)
  3. 실행:
    • chmod +x 41154.sh
    • ./41154.sh
  4. 권한 확인:
    • # whoami -> root
    • 성공 시 루트 쉘을 획득하게 된다.

5. 실무 팁

  • 컴파일 환경 부재: 타겟 호스트에 gcc가 없을 수 있다. 이 경우, 타겟과 동일한 OS/아키텍처를 가진 로컬 VM에서 미리 컴파일한 후 바이너리 파일만 전송해야 한다.